package com.sx.sx1.lintcode.day717;

import java.util.HashMap;
import java.util.Map;

public class LC211 {

    static class Solution {
        /**
         * @param a: a string
         * @param b: a string
         * @return: a boolean
         */
        public boolean permutation(String a, String b) {
            Map<Character,Integer> map1 = new HashMap<>();
            for (int i = 0; i <a.length() ; i++) {
                char c = a.charAt(i);
                if(!map1.containsKey(c))
                    map1.put(c,0);

                map1.put(c, map1.get(c)+1);
            }


            for (int i = 0; i <b.length() ; i++) {
                char c = b.charAt(i);
                if(!map1.containsKey(c))
                    return false;

                map1.put(c, map1.get(c)-1);
                if(map1.get(c) ==0)
                    map1.remove(c);
            }

            return map1.isEmpty();
        }
    }

    public static void main(String[] args) {

    }
}


/*
LintCode-Logo
搜索题目、标签、题集
中文
avatar
您有189条未读消息，请及时查看
211 · 字符串置换
算法
简单
通过率
38%

题目
题解36
笔记
讨论99+
排名
记录
描述
给定两个字符串，请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。

置换的意思是，通过改变顺序可以使得两个字符串相等。

最短时间刷“透”算法面试：《66页算法宝典》.pdf

微信添加【jiuzhangfeifei】备注【66】领取


样例
样例 1:
	输入: "abcd", "bcad"
	输出:  True



样例 2:
	输入: "aac", "abc"
	输出:  False

标签
相关题目

10
字符串的不同排列
中等

158
两个字符串是变位词
简单
推荐课程

春招算法高频题冲刺班
精准押题，抱佛脚突击算法面试，最近6个月新题/难题/高频题全覆盖！
205/1857
已开启智能提示
发起考试
15 分 00 秒
12345678910

控制台
        历史提交

 */